1. Field of the Invention
This invention relates to reconstruction software for causing a computer to perform back projection computations for projecting radiographic data of each scan position back to a reconstruction area, a recording medium storing the software, and various tomography apparatus for use in the medical, industrial and other fields for radiographing patients or objects under examination and reconstructing sectional images thereof. More particularly, the invention relates to a method for speeding up back projection computations (main part of reconstruction computations) on radiographic data or filtered radiographic data.
2. Description of the Related Art
FIG. 1 schematically shows a X-ray tomography apparatus. The apparatus includes an X-ray tube X-ray focus f) and an X-ray detector 42 opposed to each other across an object or patient. The X-ray tube and X-ray detector 42 are rotatable synchronously about the patient""s body axis to radiograph the patient intermittently from varied angles of X-ray emission from the X-ray tube to the patient. Radiographic data acquired in each scan position is put to an FBP (Filtered Back Projection) to reconstruct images of a region of interest of the patient. The FBP is a method in which radiographic data for a plurality of images of the patient acquired from different angles is put to a filtering correction process to produce data S which is projected back to a reconstruction area B virtually set to the region of interest of the patient.
To determine a reconstruction pixel value of point b(x, y) in the two-dimensional reconstructing area B, for example, value s (t(x, y, p) of detecting coordinates t(x, y, p) corresponding to a pth projection from point b(x, y), is added up the number of times of projection (Np times). This is expressed by equation (1) below and the value s is one of S. Here, t is usually calculated complicatedly from various positional information such as an X-ray focus position, a detector position and a scan angle. However, the representation t(x, y, p causes no problem since a scanning orbit is usually fixed and scan angle is calculated from p.                               b          ⁡                      (                          x              ,              y                        )                          =                              ∑                          p              =              0                                                      N                p                            -              1                                ⁢                      s            ⁡                          (                              t                ⁡                                  (                                      x                    ,                    y                    ,                    p                                    )                                            )                                                          (        1        )            
In the above equation (1), usually t is not an integer and array value s (t(x, y, p) cannot be determined directly. Therefore, an interpolating calculation is carried out using two adjacent points as shown in FIG. 2. This is expressed by the following equation (2):                               b          ⁡                      (                          x              ,              y                        )                          =                              ∑                          p              =              0                                                      N                p                            -              1                                ⁢                      {                                                            (                                      1                    -                    a                                    )                                xc3x97                                  s                  ⁡                                      (                    u                    )                                                              +                              a                xc3x97                                  s                  ⁡                                      (                                          u                      +                      1                                        )                                                                        }                                              (        2        )            
When a computer performs an integrating operation as expressed by the above equation (2), a computation as expressed by the following equation (3) is carried out the number of times of projection (Np times):
b(x, y)=b(x, y)+(1xe2x88x92a)xc3x97s(u)+axc3x97s(u+1)xe2x80x83xe2x80x83(3) 
FIG. 3 shows a conventional example of program code relating to the above equation (3). In u=INT (t(x, y, p) and a=t(x, y, p)xe2x88x92u, function t(x, y, p) is a function for calculating original data coordinates for back projection by floating point. Function INT ( ) is a function for rounding down to make an integer. Such reconstruction computations are extremely time-consuming, and usually a dedicated DSP board or the like is used for the computations. However, with personal computers (hereinafter abbreviated xe2x80x9cPCxe2x80x9d as appropriate) with ever-increasing high-speed features, radiographic apparatus have been developed with PCs for performing such reconstructing computations.
A PC today is made up of a CPU (central processing unit), memory, a hard disk (HD), IOs (input/output ports) and peripherals such as a keyboard and a mouse. Usually software and data are stored on the hard disk, which are loaded into the memory and processed by the CPU. The latest CPU chip operates faster than the memory. To demonstrate this high-speed capability, improvement has been made in performance by introducing a high-speed memory called cache memory between the CPU and memory. The cache memory is often mounted on the same semiconductor chip on which the CPU is mounted. The term CPU often embraces the cache memory. However, since high speed is required, the cache memory is more expensive than the main memory, and its storage capacity is usually small. Operation of this cache memory will be described now. When a necessary program or data is not present in the cache memory, the CPU automatically loads the program or data from the memory to the cache memory. Meanwhile, the CPU can perform a different task, thereby increasing overall efficiency. When the cache memory is full, unused old data is successively written into the memory, or data not overwritten is simply discarded. In this way, the cache memory is constantly filled with latest data needed by the CPU.
A relatively high performance PC today may have a 20 GB hard disk, a 1 GB memory, a 400 MHz CPU, and a 512 KB cache memory. In such a PC, read and write performance between CPU and cache memory is about 3200 MB/sec, and read and write performance between cache memory and memory is about 800 MB/sec. In a transfer time of 4 byte floating point data, the read and write time between CPU and cache memory is 1.25 nsec/float, and read and write time between cache memory and memory is 5 nsec/float. Thus, the cache memory is about four times as fast.
A simplified example of caching operation will be described based on an addition of all pixels in image data (1 Mbytes) of 512xc3x97512 pixels with floating point values (4 bytes). The image data is too large to store in the above 512 Kbyte cache memory. The CPU adds up the pixels while the first half of the image data in 512 Kbytes is loaded into the cache memory at 512 kbytes/800 Mbytes =640 xcexcsec. However, the data is transferred between the cache memory and CPU at a fast rate of 512 kbytes/3200 Mbytes=160 xcexcsec. Thus, the CPU just waits for the data for 640xe2x88x92160=480 xcexcsec. and stands idle without adding pixels. Next, when the CPU requests the second half of the image data in 512 Kbytes, the cache memory data is replaced successively from old data, and after 512 kbytes/800 Mbytes=640 xcexcsec, the cache memory has the second half of the image data in 512 Kbytes. However, the CPU remains idle for 480 xcexcsec. as above.
The prior art has the following drawback. The latest PCs incorporate improvement such as cache memory regarding memory accessing. However, as shown in FIG. 3, only computations xe2x80x9cfor the direction along x-axis, and then for the direction along y-axisxe2x80x9d are performed for the back projection computations. This fails to make good use of the computing capability of the CPU. A long time is taken in reconstruction computations as described below. Two-dimensional and three-dimensional reconstructions will particularly be described hereinafter.
The number of times of and a time taken in data reading and writing needed for computations to reconstruct a two-dimensional sectional image will be described first.
The foregoing equation (3) is used to determine the number of memory accesses needed to compute a section reconstruction for one point for one back projection. Value b(x, y) of point (x, y) in the section reconstructing area B is read once, then added and written. Thus, memory access occurs twice. For radiographic data S after a filtering correction, two data are read for interpolation, and thus memory access occurs twice. This requires memory access to be made a total of four times (2+2=4).
Next, for one back projection to the reconstruction area B of the size Nxxc3x97Ny, memory access is required Nxxc3x97Nyxc3x974 times. Further, when the back projection is made Np times, memory access is required Nxxc3x97Nyxc3x974xc3x97Np times in total. Usually, data is represented by 4 byte floating point numbers for computations. The number of memory accesses required is Nxxc3x97Nyxc3x974xc3x97Npxc3x974 bytes.
A memory access time for the two-dimensional reconstruction will be described with reference to a relatively high performance PC as noted hereinbefore. when, for example, the back projection is made Np=1800 times to the reconstructing area B of Nx=512 and Ny=512, memory access will be Nxxc3x97Nyxc3x974xc3x97Npxc3x974 bytes=7,549,747,200 bytes. It will be seen that, since the memory transfer rate is 800 Mbyte/sec., a time as long as 9.437 sec. is required. However, since the data transfer time between cache memory and CPU is four times faster, the CPU waits for data for 75% of the 9.437 sec., which constitutes an idle time without computations being performed, hence a serious waste.
The number of times of and a time taken in data reading and writing needed for computations to reconstruct a three-dimensional image will be described based on a concept similar to the above. Assume that the foregoing equation (3) remains substantially the same, and that an interpolation is carried out based on four adjacent points. For a calculation of one point, value b(x, y, z) of point (x, y, z) in the reconstruction area is read once, then added and written. Thus, memory access has to be made twice. For radiographic data S after a filtering correction, four points are read for interpolation, and thus original data are read four times, requiring memory access four times. This requires memory access to be made a total of six times (2+4=6).
Next, for one back projection to the section reconstruction area of the size Nxxc3x97Nyxc3x97Nz, memory access is required Nxxc3x97Nyxc3x97Nzxc3x976 times. Further, when the back projection is made Np times, memory access is required Nxxc3x97Nyxc3x97Nzxc3x976xc3x97Np times in total. Usually, data is represented by 4 byte floating point numbers for computations. The number of memory accesses required is Nxxc3x97Nyxc3x97Nzxc3x976xc3x97Npxc3x974 bytes.
A memory access time for the three-dimensional reconstruction will be described with reference to the relatively high performance PC noted above. When, for example, the back projection is made Np=512 times to the reconstructing area of Nx=512, Ny=512 and Nz=512, memory access will be Nxxc3x97Nyxc3x97Nzxc3x976xc3x97Npxc3x974 bytes=1,649,267,441,664 bytes. It will be seen that, where the memory transfer rate is 800 Mbyte/sec., a time as long as 2061.5843 sec. is required. However, since the data transfer time between cache memory and CPU is four times faster, the CPU waits for data for 75% of the 2061.5843 sec., which constitutes an idle time without computations being performed, hence a serious waste.
This invention has been made having regard to the state of the art noted above, and its object is to provide reconstruction software, a recording medium therefor and a radiographic apparatus for speeding up reconstruction computations.
To fulfill the above object, Inventor has made intensive research and attained the following findings. Though back projection computations (main part of the reconstruction computations) are a simple integrating operation, the computations are characterized by frequent reading and writing of data from/to the same data area, thus requiring a great number of memory accesses to be made. Based on this feature, the order of reconstruction computations is changed, that is the order of accessing data is changed to an optimal order by taking cache size into account. This has been found to allow the data in cache memory to be reused at an increased rate, and to decrease the number and time of data accesses between CPU and memory, thereby to shorten a time consumed by the section reconstructing computations.
Based on such findings, this invention provides reconstruction software for performing back projection computations to project radiographic data of an object acquired in each scan position back to a reconstruction area. The software comprising the step of causing the back projection computations to be performed, for each unit area formed by dividing the reconstruction area, for projecting the radiographic data acquired in each scan position, or data resulting from filtering of the radiographic data, back to a two-dimensional or three-dimensional reconstruction area virtually set to a region of interest of the object. The radiographic data being acquired by causing a radiation source and a detector arranged opposite each other across the object to scan the object synchronously, or to scan the object synchronously with rotation of the object, the radiation source irradiating the object with electromagnetic waves capable of penetrating the object, the detector detecting electromagnetic waves transmitted through the object.
According to this invention, the radiation source irradiates an object with electromagnetic waves capable of penetrating the object, and the detector is disposed opposite the radiation source for detecting electromagnetic waves transmitted through the object. The radiation source and detector are operable to scan the object synchronously, or to scan the object synchronously with rotation of the object, to acquire radiographic data in each scan position. The reconstruction software used causes back projection computations to be performed, for each unit area formed by dividing a section reconstructing area, for projecting the radiographic data, or data resulting from filtering of the radiographic data, back to a two-dimensional or three-dimensional reconstruction area virtually set to a region of interest of the object. Thus, the back projection computations (reconstruction computations) may be performed for each unit area, that is successively for one unit area after another in a way optimal to cache size. The data in the cache memory are reused at an increased rate, and access to data in the memory is reduced to shorten a total data transfer time and a time consumed by the reconstruction computations, thereby performing the section reconstruction computations at high speed.
Preferably, each unit area has a square, rectangular, triangular, lozenge-shaped, trapezoidal or other polygonal shape where the reconstruction area is two-dimensional, and a cubic, rectangular parallelepiped, trigonal pyramid, circular cone or other solid shape where the reconstruction area is three-dimensional. In this way, each unit area may have a shape appropriately set in view of cache size.
Preferably, each unit area is varied in orientation to be long in a direction of back projection. Then, for most directions of back projection, the data in the cache memory are reused at a fixed rate, and a reduced time is consumed by the reconstruction computations.
Preferably, the back projection computations are performed for each unit area successively in respect of radiographic data corresponding to a plurality of positions among all scan positions. In this way, the part corresponding to each unit area of a plurality of radiographic data are projected back to the unit area in the reconstruction area. This allows the data in the cache memory to be reused at a further increased rate, and further shortens the time consumed by the reconstruction computations.
Preferably, the unit areas have different sizes between central parts and peripheral parts of the reconstruction area. This will suppress variations in the time taken by the back projection computations due to great increases in necessary cache memory size occurring with positions of the unit areas in the reconstruction area. Thus, the reconstruction time may be shortened substantially fixedly irrespective of the positions of the unit areas.
Preferably, the data are successively projected back first to one unit area and then to an adjacent unit area. This allows the data in the cache memory to be reused at a further increased rate, and shortens the time consumed by the reconstruction computations.
Preferably, the data are projected back to a plurality of back projection points in the unit area, first to one back projection point and then to an adjacent back projection point. Thus, the section reconstructing computations are performed in an appropriate order to secure the rate of reusing the data in the cache memory, and shorten the time consumed by the section reconstructing computations.
Preferably, the radiographic data after a filtering process is projected, without interpolation, back to the unit areas. Then, data for interpolation need not be read, thereby to shorten the time consumed by the section reconstructing computations.
Preferably, the reconstruction area is an enlarged reconstruction area divided to have a pixel density higher than a detector pixel density at the center of revolution. The enlarged reconstruction area correspondingly increases the number of back projection points in each unit area. However, radiographic data handled, or part of the radiographic data corresponding to each unit area do not increase but remain the same. These data are used for back projection to the increased number of back projection points also. Thus, the high caching effect is maintained to perform the reconstruction computations fast.
In another aspect of this invention, a radiographic apparatus is provided for generating two-dimensional or three-dimensional reconstruction images of a region of interest by using reconstruction software to perform back projection computations, wherein the reconstruction software comprises the step of causing the back projection computations to be performed, for each unit area formed by dividing the reconstruction area, for projecting the radiographic data acquired in each scan position, or data resulting from filtering of the radiographic data, back to a two-dimensional or three-dimensional section reconstructing area virtually set to a region of interest of the object, the radiographic data being acquired by causing a radiation source and a detector arranged opposite each other across the object to scan the object synchronously, or to scan the object synchronously with rotation of the object, the radiation source irradiating the object with electromagnetic waves capable of penetrating the object, the detector detecting electromagnetic waves transmitted through the object.
According to this invention, the back projection computations are performed by using the above reconstruction software, to reconstruct two-dimensional or three-dimensional images of the region of interest. Thus, back projection computations (reconstruction computations) may be performed for each unit area, that is successively for one unit area after another in a way optimal to cache size. The data in the cache memory are reused at an increased rate, and access to data in the memory is reduced to shorten a total data transfer time and a time consumed by the section reconstructing computations, thereby performing the section reconstructing computations at high speed.
In a further aspect of the invention, there is provided a storage medium recording reconstructing software and readable by a computer, wherein the reconstruction software comprises the step of causing the back projection computations to be performed, for each unit area formed by dividing the section reconstructing area, for projecting the radiographic data acquired in each scan position, or data resulting from filtering of the radiographic data, back to a two-dimensional or three-dimensional reconstruction area virtually set to a region of interest of the object, the radiographic data being acquired by causing a radiation source and a detector arranged opposite each other across the object to scan the object synchronously, or to scan the object synchronously with rotation of the object, the radiation source irradiating the object with electromagnetic waves capable of penetrating the object, the detector detecting electromagnetic waves transmitted through the object.
According to this invention, the reconstruction software may be loaded from the recording medium into the arithmetic processing unit of a computer, the processing unit can perform the reconstruction computations at high speed. Thus, the reconstructing software with the high-speed features may be supplied with an increased degree of freedom.